#define _CRT_SECURE_NO_WARNINGS 1

//给定两个数，求这两个数的最大公约数
//例如：
//输入：20 40
//输出：20

#include<stdio.h>
//
//int main()
//{
//	int a, b;
//	int num = 0;
//	while (scanf("%d %d", &a, &b) != EOF)//我是为了循环利用
//	{
//		for (int i = 1; i <= a && i <= b; i++)
//		{
//			if (a % i == 0 && b % i == 0)
//			{//满足公约数条件时，进去，使num等于此公约数，由于i是递加尝试的，所以最后的公约数是最大公约数
//				num = i;
//			}
//		}
//		printf("%d", num);
//	}
//	return 0;
//}

//写一个代码：打印100~200之间的素数

int main()
{
	int flag = 1;
	int a = 2;
	for (int i = 100; i <= 200; i++)
	{
		flag = 1;//因为后续不是质数时将flag变成了0，每次循环回来需要将flag重新赋值为1
		for (a = 2; a <= i - 1; a++)
		{
			if (i % a == 0)
			{
				flag = 0;//改变flag的值方便后续if条件语句判断条件
				break;//结束第二个for循环
			}
		}
		if (flag == 1)
		{
			printf("%d ", i);//打印质数
		}
	}
	return 0;
}

//用sqrt优化
#include<math.h>
int main()
{
	int i = 100;
	int a = 2;
	int flag = 1;
	for (i = 100; i <= 200; i++)
	{
		flag = 1;
		for (a = 2; a <= sqrt(i); a++)//用sqrt将i开根号，减少运算量
		{
			if (i % a == 0)
			{
				flag = 0;//改变flag的值方便后续if条件语句判断条件
				break;//结束第二个for循环
			}
		}
		if (flag == 1)
		{
			printf("%d ", i);//打印质数
		}
	}
	return 0;
}